Unambiguous position determination using two low-earth orbit satellites

ABSTRACT

A system and method for unambiguously determining the position of a user terminal (for example, a mobile wireless telephone) in a low-Earth orbit satellite communications system. The system includes a user terminal, at least two satellites with known positions and known velocities, and a gateway (that is, a terrestrial base station) for communicating with the user terminal through the satellites. The method includes the steps of determining a range parameter, a range difference parameter, and either or both of a range-rate parameter and a range-rate difference parameter. A range parameter represents a distance between one of the satellites and the user terminal. A range difference parameter represents the difference between (1) the distance between a first one of the satellites and the user terminal and (2) the distance between a second one of the satellites and the user terminal. A range-rate parameter represents a relative radial velocity between one of the satellites and the user terminal. A range-rate difference parameter represents the difference between (a) a relative radial velocity between a first one of the satellites and the user terminal and (b) a relative radial velocity between a second one of the satellites and the user terminal. The position of the user terminal on the Earth&#39;s surface is then determined based on the known positions and known velocities of the satellites, the range parameter, the range difference parameter, and either or both of the range-rate parameter and the range-rate difference parameter.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to commonly-owned applications, filed concurrently herewith, entitled “Position Determination Using One Low-Earth Orbit Satellite” having application number (to be assigned, Attorney Docket Number PA286), “Passive Position Determination Using Two Low-Earth Orbit Satellites” having application number (to be assigned, Attorney Docket Number PA287), “Time And Frequency Precorrection For Non-Geostationary Satellite Systems” having application number (to be assigned, Attorney Docket Number PA338), and “Determination Of Frequency Offsets In Communication Systems” having application number (to be assigned, Attorney Docket Number PA300), which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

I. Field of the Invention

The present invention relates generally to object position determination using satellites. More specifically, the present invention relates to a method for determining the position of a user terminal in a satellite communications system using measurements performed at both ends of a communication link.

II. Related Art

A typical satellite-based communications system comprises at least one terrestrial base station (hereinafter referred to as a gateway), at least one user terminal (for example, a mobile telephone), and at least one satellite for relaying communications signals between the gateway and the user terminal. The gateway provides links from a user terminal to other user terminals or communications systems, such as a terrestrial telephone system.

A variety of multiple access communications systems have been developed for transferring information among a large number of system users. These techniques include time division multiple access (TDMA), frequency division multiple access (FDMA), and code division multiple access (CDMA) spread-spectrum techniques, the basics of which are well known in the art. The use of CDMA techniques in a multiple access communications system is disclosed in U.S. Pat. No. 4,901,307, which issued Feb. 13, 1990, entitled “Spread Spectrum Multiple Access Communication System Using Satellite Or Terrestrial Repeaters,” and U.S. patent application Ser. No. 08/368,570, filed Jan. 4, 1995, entitled “Method And Apparatus For Using Full Spectrum Transmitted Power In A Spread Spectrum Communication System, For Tracking Individual Recipient Phase Time And Energy,” U.S. Pat. No. 5,691,974, which are both assigned to the assignee of the present invention, and are incorporated herein by reference.

The above-mentioned patent documents disclose multiple access communications systems in which a large number of generally mobile or remote system users employ user terminals to communicate with other system users or users of other connected systems, such as a public telephone switching network. The user terminals communicate through gateways and satellites using CDMA spread-spectrum type communications signals.

Communications satellites form beams which illuminate a “spot” or area produced by projecting satellite communications signals onto the Earth's surface. A typical satellite beam pattern for a spot comprises a number of beams arranged in a predetermined coverage pattern. Typically, each beam comprises a number of so-called sub-beams (also referred to as CDMA channels) covering a common geographic area, each occupying a different frequency band.

In a typical spread-spectrum communications system, a set of preselected pseudorandom noise (PN) code sequences is used to modulate (i.e., “spread”) information signals over a predetermined spectral band prior to modulation onto a carrier signal for transmission as communications signals. PN spreading, a method of spread-spectrum transmission that is well known in the art, produces a signal for transmission that has a bandwidth much greater than that of the data signal. In a forward communications link (that is, in a communications link originating at a gateway and terminating at a user terminal), PN spreading codes or binary sequences are used to discriminate between signals transmitted by a gateway over different beams, and to discriminate between multipath signals. These PN codes are typically shared by all communications signals within a given sub-beam.

In a typical CDMA spread-spectrum system, channelizing codes are used to discriminate between signals intended for particular user terminals transmitted within a satellite beam on the forward link. That is, a unique orthogonal channel is provided for each user terminal on the forward link by using a unique “channelizing” orthogonal code. Walsh functions are generally used to implement the channelizing codes, with a typical length being on the order of 64 code chips for terrestrial systems and 128 code chips for satellite systems.

Typical CDMA spread-spectrum communications systems, such as disclosed in U.S. Pat. No. 4,901,307, contemplate the use of coherent modulation and demodulation for forward link user terminal communications. In communications systems using this approach, a “pilot” carrier signal (hereinafter referred to as a “pilot signal”) is used as a coherent phase reference for forward links. That is, a pilot signal, which typically contains no data modulation, is transmitted by a gateway throughout a region of coverage. A single pilot signal is typically transmitted by each gateway for each beam used for each frequency used. These pilot signals are shared by all user terminals receiving signals from the gateway.

Pilot signals are used by user terminals to obtain initial system synchronization and time, frequency, and phase tracking of other signals transmitted by the gateway. Phase information obtained from tracking a pilot signal carrier is used as a carrier phase reference for coherent demodulation of other system signals or traffic signals. This technique allows many traffic signals to share a common pilot signal as a phase reference, providing for a less costly and more efficient tracking mechanism.

When a user terminal is not involved in a communications session (that is, the user terminal is not receiving or transmitting traffic signals), the gateway can convey information to that particular user terminal using a signal known as a paging signal. For example, when a call has been placed to a particular mobile phone, the gateway alerts the mobile phone by means of a paging signal. Paging signals are also used to distribute traffic channel assignments, access channel assignments, and system overhead information.

A user terminal can respond to a paging signal by sending an access signal or access probe over the reverse link (that is, the communications link originating at the user terminal and terminating at the gateway). The access signal is also used when a user terminal originates a call.

When communications are required with a user terminal, the communications system may need to determine the position of the user terminal. The need for user terminal position information stems from several considerations. One consideration is that the system should select an appropriate gateway for providing the communications link. One aspect of this consideration is allocation of a communications link to the proper service provider (for example, a telephone company). A service provider is typically assigned a particular geographic territory, and handles all calls with users in that territory. When communications are required with a particular user terminal, the communications system can allocate the call to a service provider based on the territory within which the user terminal is located. In order to determine the appropriate territory, the communications system requires the position of the user terminal. A similar consideration arises when calls must be allocated to service providers based on political boundaries or contracted services.

A crucial requirement in position determination for a satellite-based communications system is speed. When communications are required with a particular user terminal, the gateway that will serve the user terminal should be selected rapidly. For example, a mobile telephone user is not likely to tolerate a delay of more than a few seconds when placing a call. The need for positioning accuracy in this situation is less important than the need for speed. An error of less than 10 kilometers (km) is considered adequate. In contrast, most conventional approaches to satellite-based position determination emphasize accuracy over speed.

One conventional approach is that employed by the U.S. Navy's TRANSIT system. In that system, the user terminal performs continuous Doppler measurements of a signal broadcast by a low-Earth orbit (LEO) satellite. The measurements continue for several minutes. The system usually requires two passes of the satellite, necessitating a wait of more than 100 minutes. In addition, because the position calculations are performed by the user terminal, the satellite must broadcast information regarding its position (also known as “ephemeris”). Although the TRANSIT system is capable of high accuracy (on the order of one meter), the delay involved is unacceptable for use in a commercial satellite communications system.

Another conventional approach is that employed by the ARGOS and SARSAT (Search and Rescue Satellite) systems. In that approach, the user terminal transmits an intermittent beacon signal to a receiver on the satellite, which makes frequency measurements of the signal. If the satellite receives more than four beacon signals from the user terminal, it can usually solve for the user terminal's position. Because the beacon signal is intermittent, an extended Doppler measurement, such as that performed by the TRANSIT system, is unavailable- Further, the solution is ambiguous, providing a possible position on each side of the satellite sub-track (that is, a line on the Earth's surface that is directly below the satellite's path).

Another conventional approach is that employed by the Global Positioning System (GPS). In that approach, each satellite broadcasts a time-stamped signal that includes the satellite's ephemeris. When the user terminal receives a GPS signal, the user terminal measures the transmission delay relative to its own clock and determines a pseudo-range to the transmitting satellite's position. The GPS system requires three satellites for two-dimensional positioning, and a fourth satellite for three-dimensional positioning.

One disadvantage of the GPS approach is that at least three satellites are required for position determination. Another disadvantage of the GPS approach is that, because the calculations are performed by the user terminal, the GPS satellites must broadcast their ephemeris information, and the user terminal must possess the computational resources to perform the required calculations.

One disadvantage of all of the above-described approaches is that the user terminal must have a separate transmitter or receiver, in addition to that required to process communication signals, in order to use those approaches.

Another conventional approach is that disclosed in commonly-owned U.S. Pat. No. 5,126,748, which issued Jun. 30, 1992, entitled “Dual Satellite Navigation System And Method,” which is incorporated herein by reference. This approach employs two satellites to actively determine the user terminal's position through trilateration. One disadvantage with this method is that the solution is ambiguous, providing two possible positions. Further information is needed to resolve the ambiguity.

What is needed, therefore, is a satellite-based position determination system capable of rapid, unambiguous position determination.

SUMMARY OF THE INVENTION

The present invention is a system and method for rapidly and unambiguously determining the position of a user terminal (for example, a mobile telephone) in a satellite communications system, such as a low-Earth orbit satellite communications system. The system includes a user terminal, at least two satellites with known positions and known velocities, and a gateway (that is, a terrestrial base station) for communicating with the user terminal through the satellites. The method includes the steps of determining a set of parameters that describe the temporal and spatial relationships between the user terminal and the satellites, and solving for the position of the user terminal using some or all of the parameters, and the known positions and known velocities of the satellites.

Four parameters can be used: range, range-rate, range difference, and range-rate difference. The range parameter represents the distance between a satellite and a user terminal. The range difference parameter represents the difference between (1) the distance between a user terminal and a first satellite and (2) the distance between that user terminal and a second satellite. The range-rate parameter represents the relative radial velocity between the user terminal and a satellite. The range-rate difference parameter represents the difference between (1) the relative radial velocity between a user terminal and a first satellite and (2) the relative radial velocity between that user terminal and a second satellite.

In a first embodiment of the present invention, the range, range difference, and range-rate difference parameters are used. In a second embodiment of the present invention, the range, range-rate, and range difference parameters are used. In a third embodiment of the present invention, all four parameters are used. In a preferred embodiment of the present invention, an iterative weighted Gauss-Newton least-squares method is used to solve for the position of the user terminal based on the parameters used and the known positions and known velocities of the satellites.

One advantage of the present invention is that it permits rapid, unambiguous position determination.

Another advantage of the present invention is that it permits rapid position determination using only two satellites.

Another advantage of the present invention is that it permits rapid position determination in a communications system without requiring the satellites to broadcast ephemeris information to user terminals for positioning purposes.

Another advantage of the present invention is that it permits rapid position determination in a communications system without requiring the user terminal to determine its position.

BRIEF DESCRIPTION OF THE FIGURES

The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digits of a reference number identify the drawing in which the reference number first appears.

FIG. 1 depicts a typical satellite communication system;

FIG. 2 is a block diagram of an exemplary transceiver for use in a user terminal;

FIG. 3 is a block diagram of an exemplary transmission and reception apparatus for use in a gateway;

FIG. 4 is a block diagram of an exemplary time tracking loop for use in a user terminal;

FIG. 5 is a block diagram of an exemplary frequency tracking loop for use in a user terminal;

FIG. 6 depicts the sub-points of two satellites and a projection, onto the surface of the Earth, of iso-contours of range, range difference, and range-rate difference parameters related to the satellites;

FIG. 7 depicts a case where the range-rate difference parameter cannot resolve the GDOP singularity presented by a positioning method using only the range and range difference parameters;

FIG. 8 depicts the sub-points of two satellites and a projection, onto the surface of the Earth, of iso-contours for range, range difference, and range-rate parameters related to the satellites;

FIG. 9A is a graphical depiction of the components of the frequency of a signal measured at the user terminal;

FIG. 9B is a graphical depiction of the components of the frequency of a signal measured at the gateway;

FIGS. 10-12 are flowcharts depicting the operation of preferred embodiments of the present invention; and

FIG. 13 is a block diagram illustrating an exemplary environment in which the present invention can operate.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

I. Introduction

The present invention is a system and method for unambiguous position determination of a user terminal in a satellite communications system using at least two low-Earth orbit (LEO) satellites. As would be apparent to one skilled in the relevant art, the concept of the present invention can be applied to satellite systems in which the satellites travel in non-LEO orbits if the relative motion between the satellites and the user terminal is sufficient to facilitate the range-rate measurements described below.

The preferred embodiment of the invention is discussed in detail below. While specific steps, configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the relevant art will recognize that other steps, configurations and arrangements can be used without departing from the spirit and scope of the present invention.

The present invention will be described in four parts. First, a typical satellite communications system is described. Second, the parameters employed by the system's positioning methods are described. Third, the positioning methods themselves are described in terms of their physical representations. Finally, the execution of these positioning methods is described.

II. A Typical Satellite Communications System

FIG. 1 depicts a typical satellite communication system 100. Satellite communication system 100 comprises gateway 102, satellites 104A and 104B, and user terminals 106. User terminals 106 are generally of three types: fixed user terminals 106A, which are typically mounted in permanent structures; mobile user terminals 106B, which are typically mounted in vehicles; and portable user terminals 106C, which are typically hand-held. Gateway 102 communicates with user terminals 106 through satellites 104A and 104B.

An exemplary transceiver 200 for use in a user terminal 106 is illustrated in FIG. 2. Transceiver 200 uses at least one antenna 210 for receiving communication signals which are transferred to an analog receiver 214, where they are downconverted, amplified, and digitized. A duplexer element 212 is usually used to allow the same antenna to serve both transmit and receive functions. However, some systems employ separate antennas for operating at different frequencies.

Digital communication signals output by analog receiver 214 are transferred to at least one digital data receiver 216A and digital searcher receiver 218. Additional digital data receivers 216B-216N can be used in a “rake” configuration to obtain desired levels of signal diversity, depending on the acceptable level of unit complexity, as would be apparent to one skilled in the relevant art. A receiver configured in such a manner is called a “rake receiver,” and each digital data receiver 216 (A-N) is called a “finger.”

The fingers of the rake receiver are not only used for signal diversity, but also to receive signals from multiple satellites. Therefore, for user terminals implementing the two satellite position determination technique of the present invention, at least two digital data receivers 216A-216N are used at one time to receive signals from the two satellites. In addition, a second searcher receiver 218, or more, can be used to provide for high speed signal acquisition, or one or more can be time shared for this task.

At least one user terminal control processor 220 is electrically coupled to digital data receivers 216A-216N and searcher receiver 218. Control processor 220 provides, among other functions, basic signal processing, timing, power and handoff control or coordination and selection of frequency used for signal carriers. Another basic control function often performed by control processor 220 is the selection or manipulation of PN code sequences or orthogonal functions to be used for processing communication signal waveforms. Control processor 220 signal processing can include a determination of the parameters employed by the present invention. Such computations of signal parameters, such as relative timing and frequency, can include the use of additional or separate dedicated circuitry to provide increased efficiency or speed in measurements or improved allocation of control processing resources.

Outputs for digital data receivers 216A-216N are electrically coupled to user digital baseband circuitry 222 within the user terminal. User digital baseband circuitry 222 comprises processing and presentation elements used to transfer information to and from a user terminal user. That is, signal or data storage elements, such as transient or long term digital memory; input and output devices such as display screens, speakers, keypad terminals, and handsets; A/D elements, vocoders and other voice and analog signal processing elements; etc., all form parts of the user baseband circuitry using elements well known in the art. If diversity signal processing is employed, user digital baseband circuitry 222 can comprise a diversity combiner and decoder. Some of these elements may also operate under the control of, or in communication with, control processor 220.

When voice or other data is prepared as an output message or communication signal originating with the user terminal, user digital baseband circuitry 222 is used to receive, store, process, and otherwise prepare the desired data for transmission. User digital baseband circuitry 222 provides this data to a transmit modulator 226 operating under the control of control processor 220. The output of transmit modulator 226 is transferred to a power controller 228 which provides output power control to a transmit power amplifier 230 for final transmission of the output signal from antenna 210 to a gateway.

Transceiver 200 can also employ one or more precorrection elements or precorrectors 232 and 234. The operation of these precorrectors is disclosed in a copending, commonly-owned application entitled “Time And Frequency Precorrection For Non-Geostationary Satellite Systems” having application number (to be assigned, Attorney Docket Number PA338), which is incorporated herein by reference. Preferably, precorrection occurs at the output of digital power controller 228 at baseband frequency. The baseband spectral information including the frequency adjustment is translated to the appropriate center frequency during up-conversion performed in transmit power amplifier 230. The precorrection or frequency adjustment is accomplished using techniques known in the art. For example, the precorrection can be effected by a complex signal rotation, which is equivalent to multiplying the signal by a factor of e^(jωt), where ω is computed on the basis of known satellite ephemerides and desired channel frequency. This is very useful where communication signals-are processed as in-phase (I) and quadrature phase (Q) channels. A direct digital synthesis device can be used to generate some of the rotation products. Alternatively, a coordinate rotation digital computation element can be used that employs binary shifts, adds, and subtracts to perform a series of discrete rotations, resulting in the desired overall rotation. Such techniques and related hardware are well understood in the art.

As an alternative, precorrection element 234 can be disposed in the transmission path on the output of transmit power amplifier 230, to adjust the frequency of the outgoing signal. This can be accomplished using well known techniques, such as up- or down-conversion of the transmission waveform. However, changing the frequency on the output of the analog transmitter can be more difficult because there is often a series of filters used to shape the waveform, and changes at this juncture may interfere with the filtering process. Alternatively, precorrection element 234 can form part of a frequency selection or control mechanism for the analog up-conversion and modulation stage (230) of the user terminal so that an appropriately adjusted frequency is used to convert the digital signal to a desired transmission frequency in one step.

Information or data corresponding to one or more measured signal parameters for received communication signals, or one or more shared resource signals, can be sent to the gateway using a variety of techniques known in the art. For example, the information can be transferred as a separate information signal or be appended to other messages prepared by user digital baseband circuitry 222. Alternatively, the information can be inserted as predetermined control bits by transmit modulator 226 or transmit power controller 228 under control of control processor 220.

Digital data receivers 216A-N and searcher receivers 218 are configured with signal correlation elements to demodulate and track specific signals. Searcher receivers 218 are used to search for pilot signals, or other relatively fixed pattern strong signals, while data receivers 216A-N are used to track pilot signals or demodulate signals associated with detected pilot signals. Therefore, the outputs of these units can be monitored to provide information employed to compute the parameters of the present invention. Information on the measurements made by user terminal 106 on received communication signals or shared resource signals can be sent to the gateway using a variety of techniques known in the art. For example, the information can be transferred as a separate data signal or be appended to other messages prepared by user digital baseband circuitry 222. Digital data receivers 216 (A-N) also employ frequency tracking elements that can be monitored to provide current frequency and timing information to control processor 220 for signals being demodulated. This is discussed further below with reference to FIGS. 4 and 5.

Control processor 220 uses such information to determine to what extent the received signals are offset from an expected frequency, based on a local oscillator frequency, when scaled to the same frequency band, as appropriate. This and other information related to frequency offsets, errors and Doppler shifts, can be stored in one or more error/Doppler storage or memory elements 236, as desired. This information can be used by control processor 220 to adjust its operating frequency, or can be transferred to gateways using various communication signals.

At least one time reference element 238 is used to generate and store chronological information such as the date and time of day to assist in determining satellite positions. The time can be stored and updated periodically. The time may also be supplied periodically by a gateway. In addition, the current time is stored each time a user terminal enters an inactive mode such as when it is “turned off”. This time value is used in conjunction with the “turn on” time to determine various time dependent signal parameters and user terminal position changes.

Additional, storage or memory elements 240 and 242 can be used to store specific information about parameters discussed in further detail below. For example, a memory element 240 can store user terminal measurements made relative to a range-rate parameter, such as differences in relative frequency offsets between two arriving signals. A memory element 242 could be used to store user terminal measurements relative to a range difference parameter, such as differences in the time of arrival for two signals. These memory elements use structure and circuits well known in the art and can be formed either as distinct or separate elements or as a larger unified structure in which this information is stored in a controlled manner, for later retrieval.

As shown in FIG. 2, a local or reference oscillator 250 is used as a reference for the analog receiver 214 to down convert the incoming signal to baseband at the desired frequency. It can also be employed in multiple intermediate conversion steps, as desired, until the signal reaches the desired baseband frequency. As shown, oscillator 250 is also used as a reference for analog transmitter 230, for up-conversion from baseband to the desired carrier frequency for reverse link transmissions, and, as a frequency standard or reference for a timing circuit 252. Timing circuit 252 generates timing signals for other stages or processing elements within user terminal 200 such as time tracking circuits, the correlators in digital receivers 216A-N and 218, transmit modulator 226, time reference element 238, and control processor 220. Timing circuit 252 can also be configured to produce delays for retarding or advancing in the relative timing of timing or clock signals, under processor control. That is, time tracking can be adjusted by predetermined amounts. This also allows the application of codes to be advanced or retarded from “normal” timing, typically by one or more chip periods, so that PN codes or chips making up the codes can be applied with different timing, as desired.

An exemplary transmission and reception apparatus 300 for use in a gateway 102 is illustrated in FIG. 3. The portion of gateway 102 illustrated in FIG. 3 has one or more analog receivers 314 connected to an antenna 310 for receiving communication signals which are then downconverted, amplified, and digitized using various schemes well known in the art. Multiple antennas 310 are used in some communication systems. Digitized signals output by analog receiver 314 are provided as inputs to at least one digital receiver module, indicated by dashed lines generally at 324.

Each digital receiver module 324 corresponds to signal processing elements used to manage communications between a gateway 102 and one user terminal 106, although certain variations are known in the art. One analog receiver 314 can provide inputs for many digital receiver modules 324, and a number of such modules are typically used in gateways 102 to accommodate all of the satellite beams and possible diversity mode signals being handled at any given time. Each digital receiver module 324 has one or more digital data receivers 316 and searcher receivers 318. Searcher receiver 318 generally searches for appropriate diversity modes of signals other than pilot signals, and several searchers can be used in parallel to increase searching speed. Where implemented in the communication system, multiple digital data receivers 316A-316N are used for diversity signal reception.

The outputs of digital data receivers 316 are provided to subsequent baseband processing elements 322 comprising apparatus well known in the art and not illustrated in further detail here. Exemplary baseband apparatus includes diversity combiners and decoders to combine multipath signals into one output for each user. Exemplary baseband apparatus also includes interface circuits for providing output data, typically to a digital switch or network. A variety of other known elements such as, but not limited to, vocoders, data modems, and digital data switching and storage components may form a part of baseband processing elements 322. These elements operate to control or direct the transfer of data signals to one or more transmit modules 334.

Signals to be transmitted to user terminals 106 are each electrically coupled to one or more appropriate transmit modules 334. A typical gateway uses a number of such transmit modules 334 to provide service to many user terminals 106 simultaneously, and for several satellites and beams simultaneously. The number of transmission modules 334 used by gateway 102 is determined by factors well known in the art, including system complexity, number of satellites usually in view, user capacity, degree of diversity chosen, and the like.

Each transmit module 334 includes a transmit modulator 326 which spread-spectrum modulates data for transmission and has an output electrically coupled to a digital transmit power controller 328, which controls the transmission power used for the outgoing digital signal. Digital transmit power controller 328 generally applies a minimum level of power for purposes of interference reduction and resource allocation, but applies appropriate levels of power when needed to compensate for attenuation in the transmission path and other path transfer characteristics. A PN generator 332 is used by transmit modulator 326 in spreading the signals. This code generation can also form a functional part of one or more control processors or storage elements used in gateway 102.

The output of transmit power controller 328 is transferred to a summer 336 where it is summed with the outputs from other transmit power control circuits. Those outputs are signals for transmission to other user terminals 106 at the same frequency and within the same beam as the output of transmit power controller 328. The output of summer 336 is provided to an analog transmitter 338 for digital-to-analog conversion, conversion to the appropriate RF carrier frequency, further amplification, filtering, and output to one or more antennas 340 for radiating to user terminals 106. Antennas 310 and 340 may be the same antennas depending on the complexity and configuration of the communication system.

At least one gateway control processor 320 is electrically coupled to receiver modules 324, transmit modules 334, and baseband circuitry 322. These units may be physically separated from each other. Control processor 320 provides command and control signals to effect functions such as, but not limited to, signal processing, timing signal generation, power control, handoff control, diversity combining, and system interfacing. In addition, control processor 320 assigns PN spreading codes, orthogonal code sequences, and specific transmitters and receivers or modules for use in user communications. Further, control processor 320 can be used to compute the parameters and execute the positioning method of the present invention.

Control processor 320 also controls the generation and power of pilot, synchronization, and paging channel signals and their coupling to transmit power controller 328. The pilot channel is simply a signal that is not modulated by data, and may use a repetitive unchanging pattern or non-varying frame structure. That is, the orthogonal function used to form the pilot signal channel generally has a constant value, such as all 1's or 0's, or a well known repetitive pattern of interspersed 1's and 0's.

While control processor 320 can be electrically coupled directly to the elements of a module, such as transmit module 334 or receive module 324, each module generally comprises a module-specific processor, such as transmit processor 330 or receive processor 321, which controls the elements of that module. Thus, in a preferred embodiment, control processor 320 is electrically coupled to transmit processor 330 and receive processor 321, as shown in FIG. 3. In this manner, a single control processor 320 can control the operations of a large number of modules and resources more efficiently. Transmit processor 330 controls generation of, and signal power for, pilot, synchronization, paging signals, and traffic channel signals, and their respective coupling to power controller 328. Receive processor 321 controls searching, PN spreading codes for demodulation and monitoring received power. Processor 321 can also be used in determining signal parameters employed in the method of the present invention, or can detect and transfer information received from the user terminal regarding such parameters, thereby decreasing the burden on control processor 320.

In order to implement embodiments of the present invention, one or more precorrectors or frequency precorrection elements 342 and 344 may be used. Preferably, a precorrection element 342 is used to adjust the frequency of the digital output of digital power controller 328 at baseband frequency. As in the user terminal, baseband spectral information including the frequency adjustment is translated to the appropriate center frequency during the up-conversion performed in analog transmitter 338. The frequency precorrection is accomplished using techniques known in the art, such as the complex signal rotation discussed above, where the angle of rotation is computed on the basis of known satellite ephemerides and desired channel frequency. As in the user terminal, other signal rotation techniques and related hardware can be used without departing from the spirit and scope of the present invention.

In addition to frequency precorrection, there may be a desire to have time precorrection, to alter the relative timing of signals, or PN codes. This is generally accomplished by adjusting either code generation and timing or other signal parameter timing when a signal is generated at baseband and prior to output by power controller 328. For example, controller 320 can determine when codes are generated, and their relative timing and application to signals, as well as when signals are acted upon by transmit modulator 326 and are transmitted to various satellites by power controller 328. However, known time precorrection elements or circuits, either forming a part of, or as separate units (not shown) similar to, precorrection elements 342 and 344 can be used without or in addition to frequency precorrection elements, as desired.

In FIG. 3, precorrector 342 is shown disposed in the transmission path prior to summer 336. This allows individual control over each user terminal signal as desired. However, a single frequency precorrection element can be used when precorrection is performed after summer 336, because user terminals share the same transmission path from the gateway to the satellite.

As an alternative, a precorrector 344 can be disposed in the transmission path on the output of analog transmitter 338, to adjust the frequency of the outgoing signal, using well known techniques. However, changing the frequency on the output of the analog transmitter can be more difficult, and may interfere with signal filtering processes. Alternatively, the output frequency of analog transmitter 338 can be adjusted directly by control processor 320 to provide a shifted output frequency, offset from the normal center frequency.

The amount of frequency correction imposed on the outgoing signal is based on known Doppler between the gateway and each satellite through which communication is established. The amount of shifting required to account for the satellite Doppler can be computed by control processor 320 using known satellite orbital position data. This data can be stored in, and retrieved from, one or more storage elements.346, such as lookup tables or, memory elements. This data can also be provided from other data sources, as desired. A variety of well known devices such as RAM and ROM circuits, or magnetic storage devices can be used to construct storage elements 346. This information is used to establish the Doppler adjustment for each satellite being used by the gateway at a given time.

As shown in FIG. 3, a time and frequency unit (TFU) 348 provides reference frequency signals for the analog receiver 314 . A Universal Time (UT) signal from a GPS receiver can be used as part of this process in some applications. It can also be employed in multiple intermediate conversion steps, as desired. TFU 348 also serves as a reference for analog transmitter 338. TFU 348 also provides timing signals to other stages or processing elements within gateway transmission and reception apparatus 300 such as the correlators in digital receivers 316A-N and 318, transmit modulator 326, and control processor 320. TFU 348 is also configured to retard or advance the relative timing of (clock) signals, under processor control, by predetermined amounts, as desired.

One embodiment for performing timing measurements is illustrated in FIG. 4, which presents a time tracking loop 400 for a user terminal. This type of time tracking loop is referred to as a Tau Dither type, as is known in the art. In FIG. 4, incoming communication signals from the analog receiver are typically oversampled and then input to a decimator 402. The decimator 402 operates at a preselected rate and timing to transfer only certain samples to subsequent stages in the receiver.

Decimated samples are transferred to a combination element 404, typically a multiplier, for combining with appropriate system PN spreading codes, provided by a PN generator or source 406, to despread the signal. The despread signal is transferred to a combination element 408 where it is combined with appropriate orthogonal code functions W_(i), provided by a code generator or source 410, where used, to obtain data. The orthogonal code functions are those used to create communication signal channels. Generally, pilot and paging signals are used for this process, although other strong signals could be used. Therefore, the orthogonal code is generally one used to generate a pilot or paging signal, as would be known in the art. Alternatively, PN spreading and orthogonal codes can be combined together and then combined with the samples in a single step, as is known in the art.

The time tracking circuit can employ an “Early/Late” scheme as disclosed in U.S. Pat. No. 4,901,307, discussed above. In this approach, the degree to which the timing of incoming signals and digital receivers 216.are the same, or aligned, is measured by sampling an incoming data stream at an offset from a nominal chip time. This offset is either plus or minus half a PN code chip period, and is referred to as either late or early, respectively.

If the timing of the plus or minus offset data differs from that of the nominal despread incoming signal peaks symmetrically, the difference formed between “late” and “early” sampling values is zero. That is, a value created by forming a difference between the “late” and “early” signals goes to zero when the one-half chip offset is centered about the “on-time” timing of the received signal. If the relative timing used by receivers 216 is not tracking the received signal timing accurately, and is fast relative to the incoming signal data, then the late-minus-early difference produces a correction signal with a positive value. On the other hand, if the signal timing is too slow, the difference produces a correction signal with a negative value. It is readily apparent that an inverse or other relationship can also be employed as desired.

To implement this technique, the decimator output is controlled to occur one-half chip earlier than normally used to demodulate signals. The decimator output is then despread and decoded, and the resulting data accumulated over a pre-selected period (typically a symbol period) in an accumulator 414. The accumulated symbol data provide symbol energies, which are squared in a squaring element 416 to provide non-negative magnitude values for an “early” signal.

Another set of samples is accumulated and summed, or integrated, over a subsequent pre-selected period using accumulator 414. However, during this period a set of delay elements 412 are used to delay the application of the PN and orthogonal codes by one chip period. This has the same effect as altering the timing of the samples, or decimation, producing a “late” version of the despread and decoded data. This despread and decoded data is accumulated over the pre-selected period in accumulator 414. Additional elements and storage devices can be used as desired. The accumulated late symbol data is squared in squaring element 416. The resulting early and late squared values are either subtracted from each other or compared to produce a desired Early/Late timing difference in element 418. This difference is filtered using a timing filter 420 to provide an “advance/retard” signal 422. The time tracking loop continues to alternate between using un-delayed and delayed codes to produce early and late symbols, which are used to update or generate values for “advance/retard” signal 422. This continues until the receiver timing is reset, such as when the receiver is inactivated or shifted to tracking a new signal, as would be apparent to one skilled in the relevant art.

Initial and ongoing timing control for the decimation process, and delay of codes, is provided by circuitry such as a timing control circuit 424. That is, timing control circuit 424 determines the timing of sample selection from decimator 402. At the same time, PN spreading and orthogonal code generation are also controlled by signals from timing control circuit 424. This later timing is sometimes referred to as a PN-enable since it enables application of codes. There may also be an initialization or EPOCH timing signal. The timing selected by timing control circuit 424 is adjusted by advance/retard signal 422 in response to the timing loop output. Generally, the timing is advanced by a length of time that is a fraction of a chip period, for example ⅛ of a chip where 8-times oversampling is used, to collect the input signal before decimation. The use of such timing and advance and retard mechanisms are well understood in the art.

The amount by which each finger or digital receiver adjusts its timing to synchronize or align with an input signal is used to determine relative delays in signal arrival time. This is easily accomplished by tracking the total amount of time change (advance/retard) used by timing loop 400. An accumulator 426 can be used to simply accumulate and sum each of the advance/retard signals or commands over a preselected period. This provides a total or net amount of change needed to align the incoming signal and receiver timing. This represents an offset of the signal from local user terminal or receiver timing. Where user terminal timing is relatively close to or synchronized with the gateway, this could provide a measure of the delay experienced by a signal as it transits between a gateway and user terminal, which allows computation of range. Unfortunately, many factors such as local oscillator inaccuracy or drift generally prevent such direct computations.

However, the timing adjustments from two digital receivers 216 can be used to provide a relative time of arrival difference value. Here each digital receiver is receiving a signal from either satellite 104A or 104B, and determining the timing adjustments needed to track the signal. The timing adjustment required can be provided either directly to the control processor or to a dedicated computation element where a difference is formed between the two. This difference indicates the relative time difference for the arrival of the two signals at the user terminal, which can be reported back to the gateway.

As mentioned before, this data can be sent to the gateway as part of other messages or as dedicated time information signals. The data can be stored in transient memory elements for later transfer and use. The information can also be provided or stored with some form of “time stamp” reflecting the time of collection, so that a gateway has an accurate time relationship for the data and can more accurately determine user terminal position. However, the accuracy desired in communications systems, as mentioned above, is not a very strict requirement. If the information is transmitted within a very short time from collection, time stamping is not very useful. Generally, the data is sent within a few data frames of its measurement, and if there is a transfer problem, the data is generated again before transfer so it is not more than a few frames old. However, time stamping allows more flexibility in data transmission, and repeated transfer of signals or sets of signals regardless of actual time. Otherwise, the system is likely to use fixed timing slots and reporting requirements if time stamping is not used to maintain a desired level of accuracy.

The process is similar for signals received by a gateway, except that a pilot signal is not detected, and the orthogonal codes are generally associated with access probe signals. One advantage for a gateway is that the timing can be thought of as an absolute time reference. That is, the gateway has accurate system timing, as discussed above, and can accurately determine time differences for application of PN or orthogonal codes relative to its own time. This allows a gateway to determine accurate transit times or distances from the state of the PN codes being used for each receiver or finger. These transit times or distances can be used in determination of the range and range difference parameters of the present invention. Therefore, while useful in some applications, the information for each finger can be treated separately and need not be combined using an element 428, as before.

One embodiment for performing frequency measurements is illustrated in FIG. 5, which presents an overview of a frequency tracking loop 500 for a user terminal. These frequency measurements can be used in determination of the range-rate and range-rate difference parameters of the present invention. In FIG. 5, communication signals from the analog receiver are input to a rotator 502. Rotator 502 operates at a preselected but adjustable phase to remove residual frequency errors or offsets from digital samples arriving from an analog receiver at the digital receiver or finger.

When CDMA-type signals are employed, the samples can be transferred to one or more combination elements 504, typically a multiplier, for combining with appropriate system PN spreading codes provided by one or more code generators or sources 506 to obtain data. Such PN spreading and orthogonal codes can be combined with the signal either separately or together in a single step. Where traffic channels are used to adjust the frequency, a fast Hadamard transform (FHT) element may be used in place of combiner 504 and code generator 506. This technique is disclosed in U.S. patent application Ser. No. 08/625,481 entitled “Frequency Tracking For Orthogonal Walsh Modulation,” which is assigned to assignee of the present invention and is incorporated herein by reference.

Rotated, and despread and decoded, signals are accumulated over a symbol period in accumulator 514 to provide a data symbol, and the results are provided to a vector cross product generation element or generator 518. At the same time, each symbol is provided to a one symbol time delay element 516, which provides a one symbol period delay before transferring the symbol to cross product generator 518.

Cross product generator 518 forms a vector cross product between a given symbol and the preceding symbol to determine a change in phase between the symbols. This provides a measure of error in the phase rotation imparted to the input signal. The output from cross product generator 518 is provided as a frequency error estimate or adjustment factor to rotator 502 and code generator 506.

Timing control for the despreading and decoding processes is provided by circuitry such as a timing control circuit 524, as discussed above. This timing may be provided as an output from the timing loop discussed above.

The amount by which each finger or digital receiver adjusts its phase to align with an input signal is used to determine relative frequency offsets in arriving signals. That is, the amount by which the rotator phase has to be adjusted to remove residual error in signal alignment indicates the amount by which the arriving signal frequency is offset from the expected or local reference frequency for the user terminal.

Since the communication system operates within fixed sets of frequency bands for communication signals, the receivers know the center or nominal carrier frequencies to use. However, as a result of Doppler shifts and other effects, which may be minimal, the arriving signal will not be at the expected center frequency. The adjustments discussed above define an offset, which can be used to determine the Doppler shifts and the actual frequency of the arriving signal.

This is easily accomplished by tracking the total amount of change implemented by frequency tracking loop 500. An accumulator 522 can be used to simply accumulate the phase changes from the error estimates, signals, or commands over a preselected period. This provides a total or net amount of change needed to align the incoming signal and receiver frequencies, and represents the frequency offset of the signal from local user terminal or receiver frequency, scaled to the appropriate frequency band.

As before, this data can be sent to the gateway as part of other messages or as dedicated frequency information signals. The data can be stored in transient memory for later transfer and can also be provided with some form of “time stamp”. However, this is generally not necessary since data is sent within a few data frames of its measurement, and can be regenerated if there is a problem. Otherwise, the system is likely to use fixed timing slots and reporting requirements if time stamping is not used to maintain a desired level of accuracy.

III. Available Parameters

In a preferred embodiment, the present invention employs combinations of four parameters: range, range-rate, range difference, and range-rate difference. The parameters describe the spatial and temporal relationships between user terminal 106 and satellites 104A and 104B. These parameters, and their measurement and application, are described below.

FIGS. 6, 7 and 8 depict the projection, onto the surface of the Earth, of iso-contours representing these parameters. An iso-contour of a parameter is a curve connecting all points having the same value of the parameter. FIGS. 6 and 7 depict the sub-points 614A and 614B of two satellites 104A and 104B, respectively, (that is, the points on the surface of the Earth that are directly below the satellites) and a projection, onto the surface of the Earth, of iso-contours for range, range difference, and range-rate difference parameters related to satellites 104A and 104B. Two axes, x-axis 602A and y-axis 602B, graduated in thousands of kilometers, are provided to illustrate an exemplary scale. FIG. 8 depicts the sub-points 614A and 614B of two satellites 104A and 104B, respectively, and a projection, onto the surface of the Earth, of iso-contours for range, range difference, and range-rate parameters related to satellites 104A and 104B.

Range. The range parameter represents the distance between a satellite and a user terminal. In a preferred embodiment of the present invention, the range parameter is the distance R between a satellite 104 and a user terminal 106. The projection of an iso-R contour onto the surface of the Earth describes a circle centered beneath the relevant satellite, as depicted by the dash-dot lines, shown generally at 604, in FIG. 6. In a preferred embodiment of the present invention, R is obtained by measuring the round-trip delay (RTD) of a signal transmitted from a satellite 104 to a user terminal 106 and back to the same satellite 104. R is then determined by dividing RTD by two, to yield a one-way delay, and multiplying the result by the speed of light, which represents the speed of the signal. In an alternative embodiment, RTD is used as a range parameter.

In a preferred embodiment of the present invention, RTD is measured by the following method. First, a signal containing a known running PN sequence or spreading code is transmitted by gateway 102. The signal is relayed to user terminal 106 by a satellite 104. User terminal 106 retransmits the signal either immediately or after a known delay. The retransmitted signal is relayed back to gateway 102 by the same satellite 104. Gateway 102 then compares the state of the PN sequence in the received signal to the state of the local PN sequence. The difference in states is then used to determine the total round-trip delay, which includes known delays between gateway 102 and satellite 104. These delays are known because the distance between satellites 104 and gateway 102 is maintained by gateway 102, as is well known in the relevant art. Subtracting these known delays from the total round-trip delay yields RTD. Using known satellite ephemerides, the known delays between gateway 102 and satellite 104 are computed by various methods well known in the art.

In an alternate embodiment, R is obtained by measuring a “hybrid” round-trip delay of a signal transmitted from one satellite 104A to a user terminal 106 and back to a second satellite 104B. In this embodiment, however, the one-way delay cannot be determined simply by dividing the hybrid round-trip delay in half. Because two satellites are involved in the measurement, some information regarding their relative position is required. In a preferred embodiment of the present invention, this information is supplied by the range difference parameter, discussed below. As would be apparent to one skilled in the relevant art, other parameters and measurements can supply this information. Once the one-way delay has been found for a satellite 104, R is determined by multiplying the one-way delay by the speed of light.

In a preferred embodiment of the present invention, the hybrid round-trip delay is measured by the following method. First, a signal containing a running PN sequence is transmitted by gateway 102. The signal is relayed to user terminal 106 by a first satellite 104A. User terminal 106 retransmits the signal either immediately or after a known delay. The retransmitted signal is relayed back to gateway 102 by a second satellite 104B. Gateway 102 then compares the state of the PN sequence in the received signal to the state of the local PN sequence. The difference in states is then used to determine the total hybrid round-trip delay based on the known chip rate. Subtracting the known delays between gateway 102 and first satellite 104A, and between gateway 102 and second satellite 104B from the total hybrid round-trip delay yields the hybrid round-trip delay.

As would be apparent to one skilled in the relevant art, other methods can be employed to obtain R without departing from the spirit and scope of the present invention.

In a preferred embodiment of the present invention, RTD can be measured either during a call or during call establishment. If the measurement takes place during call establishment, the signal measured is usually transmitted from gateway 102 to user terminal 106 as part of the paging signal, and is retransmitted from user terminal 106 to gateway 102 as part of the access signal. If the measurement takes place during a call, the signal measured is usually transmitted from gateway 102 to user terminal 106 and back as part of the traffic signals. As would be apparent to one skilled in the relevant art, the measured signal can be another type of signal or can be incorporated into other signals, as desired, without departing from the spirit and scope of the present invention.

Range Difference. The range difference parameter represents the distances between a user terminal 106 and two satellites 104A and 104B. In a preferred embodiment of the present invention, the range difference parameter is the difference dR between (1) the distance between a particular user terminal 106 and a first satellite 104A and (2) the distance between that user terminal 106 and a second satellite 104B. The projection of iso-dR contours on the surface of the Earth describes a set of hyperbolas, as depicted by the dashed lines, shown generally at 606 in FIG. 6, with the dR=0 contour describing a straight line.

In a preferred embodiment of the present invention, dR is determined by the following method. First, gateway 102 transmits two signals. The first signal is transmitted through a first satellite 104A to user terminal 106, and the second signal is transmitted through a second satellite 104B to user terminal 106. In a preferred embodiment of the present invention, the first and second signals are precorrected in time, as described above with respect to FIG. 3, at gateway 102 so that they are retransmitted by the first and second satellites 104A and 104B, respectively, substantially simultaneously.

Second, user terminal 106 determines a delay difference between (1) the time at which user terminal 106 received the signal from the first satellite and (2) the time at which user terminal 106 received the signal from the second satellite. This delay difference is referred to hereinafter as Δt. Third, user terminal 106 reports Δt to gateway 102. Finally, gateway 102 determines dR from Δt. As would be apparent to one skilled in the relevant art, other methods can be employed to obtain dR without departing from the spirit and scope of the present invention.

In an alternative embodiment of the present invention, Δt is used as a range-difference parameter.

In a preferred embodiment of the present invention, the first and second signals are pilot signals. As would be apparent to one skilled in the relevant art, any suitable signal can be used without departing from the spirit and scope of the present invention.

In a preferred embodiment of the present invention, the first and second signals are precorrected, as discussed above with respect to FIG. 3, by gateway 102 before transmission to ensure that the PN codes of the signals are synchronized (including appropriate PN code offsets for sub-beams) when they are retransmitted by satellites 104A and 104B, and user terminal 106 determines Δt by comparing the states of the PN codes in the two received signals. In an alternative embodiment, the first and second signals are not precorrected in time, but the effects of the difference in retransmission times between the first and second signals are removed at gateway 102 after reception of the signals. As would be apparent to one skilled in the relevant art, other precorrection methods can be employed to compensate for the difference in path lengths between gateway 102 and satellites 104A and 104B.

Range-rate. The range-rate parameter represents the relative radial velocity between a user terminal and a satellite. In a preferred embodiment of the present invention, the range-rate parameter is the relative radial velocity {dot over (R)} between a user terminal 106 and a satellite 104. In an alternative embodiment of the present invention, the range-rate parameter is the Doppler shift RTDop in signals transmitted between a user terminal 106 and a satellite 104. {dot over (R)} can be calculated by multiplying RTDop by the speed of light and dividing by the center carrier frequency. The projection of iso-RTDop contours on the surface of the Earth describes a set of hyperbola-like curves, symmetric with respect to the velocity vector of the relevant satellite, as depicted by the solid lines in FIG. 8, as shown generally at 804. The RTDop=0 contour, which passes through the sub-point 614A of satellite 104A, describes a straight line.

In a preferred embodiment of the present invention, {dot over (R)} is determined by taking two frequency measurements, one at user terminal 106 and one at gateway 102, by the following method. User terminal 106 measures the frequency of a signal received from gateway 102 through a satellite 104 and reports this frequency to gateway 102. Gateway 102 measures the frequency of a signal received from user terminal 106 through the same satellite 104. Thus, two frequency measurements are available at gateway 102. In a preferred embodiment, the frequencies are measured relative to local oscillator frequencies. The actual frequency is then obtained as discussed below. This technique is also disclosed in copending, commonly-owned application “Determination Of Frequency Offsets In Communication Systems” having application number (to be assigned, Attorney Docket Number PA300), which is incorporated herein by reference.

These measurements can be represented by two equations involving two unknowns: the relative radial velocity {dot over (R)} and a normalized offset ƒ_(off)/ƒ₀ of the local oscillator of user terminal 106. This pair of equations can be solved for these two unknowns, yielding not only {dot over (R)}, but also ƒ_(off)/ƒ₀, which is a measurement that is useful in other aspects of satellite communications systems operations, as would be apparent to one skilled in the relevant art.

The derivation of these two equations is depicted graphically in FIGS. 9A and 9B. FIG. 9A is a graphical depiction of the components of the frequency measured at user terminal 106. FIG. 9B is a graphical depiction of the components of the frequency measured at gateway 102.

{dot over (R)} = Relative radial velocity between satellite 104 and user terminal 106 c = Propagation velocity (speed of light) f_(F) = Forward link nominal frequency f_(R) = Reverse link nominal frequency f₀ = Nominal frequency of local oscillator of user terminal 106 f_(off) = Frequency offset of local oscillator of user terminal 106 $\frac{f_{off}}{f_{0}}$

= Normalized frequency offset of local oscillator of user terminal 106

Referring to FIG. 9A, the frequency measured at user terminal 106 is given by: $\begin{matrix} {f_{{meas},{UT}} = {f_{F}\left( {{- \frac{\overset{.}{R}}{c}} - \frac{f_{off}}{f_{0}}} \right)}} & (1) \end{matrix}$

Referring to FIG. 9B, the frequency measured at gateway 102 is given by: $\begin{matrix} {f_{{meas},{GW}} = {f_{R}\left( {{- \frac{\overset{.}{R}}{c}} - \frac{f_{off}}{f_{0}}} \right)}} & (2) \end{matrix}$

Adding and subtracting (1) and (2) yields both the frequency offset and the relative radial velocity, according to the relationships: $\begin{matrix} {R = {{- \frac{c}{2}}\left( {\frac{\left( f_{{meas},{GW}} \right)}{f_{R}} + \frac{\left( f_{{meas},{UT}} \right)}{f_{F}}} \right)}} & (3) \\ {\frac{f_{off}}{f_{0}} = {\frac{1}{2}\left( {\frac{\left( f_{{meas},{GW}} \right)}{f_{R}} - \frac{\left( f_{{meas},{UT}} \right)}{f_{F}}} \right)}} & (4) \end{matrix}$

As would be apparent to one skilled in the relevant art, other methods can be employed to obtain {dot over (R)} without departing from the spirit and scope of the present invention.

In an alternate embodiment, {dot over (R)} is obtained by a “hybrid” method involving two satellites 104A and 104B. In this embodiment, user terminal 106 measures the frequency of a signal received from gateway 102 through a first satellite 104A and reports this frequency to gateway 102. Gateway 102 measures the frequency of a signal received from user terminal 106 through a second satellite 104B. Thus, two frequency measurements are available at gateway 102, and thus two equations are available for solution. However, in this embodiment there are three unknowns: the relative radial velocity of the first satellite 104A, the relative radial velocity of the second satellite 104B, and the normalized offset of the local oscillator ƒ_(off)/ƒ₀. Thus, more information is required to solve for {dot over (R)}. In a preferred embodiment of the present invention, this information can be supplied by the range-rate difference parameter, discussed below. As would be apparent to one skilled in the relevant art, other parameters and measurements can supply this information. Thus, this embodiment permits operation of the present invention even when the same satellite 104 cannot be used for both the forward and reverse link signals. This situation could arise, for example, due to sudden blockage, signal degradation, and the like.

In a preferred embodiment of the present invention, the frequency measurements can take place either during a call or during call establishment. If the measurement takes place during call establishment, the signal measured at user terminal 106 is the paging signal, and the signal measured at gateway 102 is the access signal. If the measurement takes place during a call, the signals measured at user terminal 106 and gateway 102 are traffic signals. As would be apparent to one skilled in the relevant art, other signals can be employed without departing from the spirit and scope of the present invention.

Range-rate Difference. The range-rate difference (also known as Doppler-difference) parameter describes the difference between (1) the range-rate between a particular user terminal 106 and a first satellite 104A and (2) the range-rate between that user terminal 106 and a second satellite 104B. In a preferred embodiment of the present invention, the range-rate difference parameter is a difference Δ{dot over (R)} between (1) a relative radial velocity between a particular user terminal 106 and a first satellite 104A and (2) a relative radial velocity between that user terminal 106 and a second satellite 104B.

In an alternative embodiment of the present invention, the range-rate difference parameter is the frequency difference Δƒ, measured at user terminal 106, between the frequency of a signal received from gateway 102 through a first satellite 104A and the frequency of a signal received from gateway 102 through a second satellite 104B. Δ{dot over (R)} is related to Δƒ as follows: Δ{dot over (R)} can be calculated by multiplying Δƒ by the speed of light and dividing by the center carrier frequency. The projection of iso-Δƒ, contours on the surface of the Earth describes a set of curves, as depicted by the solid lines in FIG. 6 and shown generally at 608.

In a preferred embodiment of the present invention, Δ{dot over (R)} is determined by the following method. First, the gateway transmits two signals. The first signal is transmitted through a first satellite 104A to user terminal 106, and the second signal is transmitted through a second satellite 104B to that user terminal 106. In a preferred embodiment of the present invention, the frequencies of the first and second signals are precorrected at gateway 102 so that the signals retransmitted by the first and second satellites 104A and 104B have the same frequency.

Second, user terminal 106 determines the difference between (1) the frequency of the signal received from the first satellite and (2) the frequency of the signal received from the second satellite. This frequency difference is Δƒ. Finally, user terminal 106 calculates Δ{dot over (R)} by multiplying Δƒ by the speed of light and dividing the result by the center carrier frequency of the first and second signals. As would be apparent to one skilled in the relevant art, other methods can be employed to obtain Δ{dot over (R)} without departing from the spirit and scope of the present invention.

In a preferred embodiment of the present invention, the first signal is precorrected by gateway 102 prior to transmission by adjusting the signal's frequency to compensate for the Doppler shift caused by the known relative motion between first satellite 104A and gateway 102, and the second signal is precorrected in a similar manner. In an alternative embodiment, neither signal is frequency precorrected. As would be apparent to one skilled in the relevant art, other precorrection methods can be employed to compensate for the motion of satellites 104A and 104B.

In a preferred embodiment of the present invention, the first and second signals are pilot signals. As would be apparent to one skilled in the relevant art, any suitable signal can be used without departing from the spirit and scope of the present invention.

IV. Positioning Methods

The parameters described above can be used in at least three different combinations to determine the position of a user terminal 106. These three positioning methods are described below. As an aid to understanding the present invention, physical representations of the parameters are presented as iso-parameter contours projected onto the surface of the Earth.

In a first embodiment of the present invention, position determination is based on the range, range difference, and range-rate difference parameters. FIG. 6 depicts iso contours for these parameters. In FIG. 6, the range parameter is R, the range difference parameter is dR, and the range-rate difference parameter is Δƒ. Referring to FIG. 6, one iso-R contour is depicted by a dash-dot line, shown generally at 604, which forms a circle representing a range of 2750 km between user terminal 106 and satellite 104A. The sub-points 614 of satellites 104 are connected by baseline 612. Note that any iso-R contour will intersect baseline 612 at a 90° angle. FIG. 6 also depicts a family of iso-dR contours as dashed lines, as shown generally at 606. Each iso-dR contour is a hyperbola connecting all points having the same value of dR, and intersects baseline 612 at a 90° angle. In FIG. 6, the dR contours are graduated in thousands of kilometers. The dR=0 contour is a normal bisector of baseline 612. The dR=+0.5 contour, immediately to the right of the dR=0 contour, connects all points for which the range to satellite 104A exceeds the range to satellite 104B by 500 km.

A positioning method using only the range and range difference parameters will suffer from two problems. The first problem is position ambiguity. For example, consider a case where R=2750 km and dR=+500 km. Referring to FIG. 6, the R=2750 km contour intersects the dR=+500 km contour at two points, 610A and 610B. Without further information, it cannot be determined whether user terminal 106 is at point 610A or 610B. Thus, this solution is ambiguous.

The second problem is known as Geometric Dilution of Precision (GDOP). A GDOP “singularity” occurs when a small error in a parameter causes a large error in the position solution. Because both the R and dR contours intersect baseline 612 at a 90° angle, they can be tangential or nearly tangential. Thus, a small error in either parameter will cause a large position error. Without further position information, a positioning method using only the range and range difference parameters can suffer from a GDOP singularity.

The use of an appropriate third parameter can solve both problems in most cases. Referring to FIG. 6, the range-rate difference parameter Δƒ is depicted as a family of curves, shown generally at 608 as solid lines graduated in kHz. The shape of the Δƒ curves is a function of the relative velocity of satellites 104A and 104B. Representative velocity vectors of satellites 104A and 104B are depicted generally at 616A and 616B as arrows extending along the line of travel. The area of maximum Δƒ is found near the top of FIG. 6, where the sub-tracks of satellites 104A and 104B intersect.

Referring to FIG. 6, the Δƒ contours are nearly perpendicular to the R and dR contours. For this reason, the range-rate difference parameter Δƒ resolves both the positioning ambiguity and the GDOP problem. For example, point 610A lies on the Δƒ=20 kHz contour, while point 610B lies at approximately Δƒ=84 kHz. Because points 610A and 610 B are clearly distinguished by their Δƒ values, the range-rate difference parameter Δƒ can resolve the positioning ambiguity problem. For the same reason, the range-rate difference parameter Δƒ resolves the GDOP problem. The range-rate difference parameter Δ{dot over (R)} can also resolve these problems, as would be apparent to one skilled in the relevant art.

FIG. 7 depicts a case where the range-rate difference parameter does not resolve the GDOP singularity presented by a positioning method using only the range and range difference parameters. In this case, the velocity vectors (and thus the paths and sub-tracks) of the two satellites 104A and 104B seen by user terminal 106 are nearly parallel. This geometry causes the Δƒ contours in the vicinity of user terminal 106 to be closed, and to run nearly parallel to the R and dR contours near a point 712 on baseline 612. Because all three contours are nearly parallel in the vicinity of user terminal 106, a GDOP singularity exists. The GDOP singularity can be resolved by replacing the range-rate difference parameter with the range-rate parameter, as discussed below.

FIG. 10 is a flowchart depicting the operation of this first embodiment of the present invention. One or more range parameters are determined, as described above and shown in a step 1002. One or more range difference parameters are determined, as described above and shown in a step 1004. One or more range-rate difference parameters are determined, as described above and shown in a step 1008. Then, the position of the user terminal on the Earth's surface is determined based on the known positions and velocities of satellites and the range, range difference, and range-rate difference parameters, as shown in a step 1010 and described below.

In a second embodiment of the present invention, position determination is based on the range, range difference, and range-rate parameters. FIG. 8 depicts the case of FIG. 7, where the iso-Δƒ contours have been replaced by iso-RTDop contours, measured with respect to satellite 104A, as depicted by solid lines, shown generally at 804. The iso-RTDop contours are hyperbola-like, and are symmetric with respect to the velocity vector of satellite 104A. Each RTDop contour connects those points on the Earth's surface experiencing the same Doppler shift with respect to satellite 104A. The iso-RTDop contours are graduated in kHz, with the RTDop=0 contour passing through the sub-point 614A of satellite 104A. Thus, to an observer standing on the RTDop=0 contour, satellite 104A would appear to be moving neither toward the observer nor away from the observer.

FIG. 11 is a flowchart depicting the operation of this second embodiment of the present invention. One or more range parameters are determined, as described above and shown in a step 1102. One or more range difference parameters are determined, as described above and shown in a step 1104. One or more range-rate parameters are determined, as described above and shown in a step 1106. Then, the position of the user terminal on the Earth's surface is determined based on the known positions and velocities of satellites and the range, range difference, and range-rate parameters, as shown in a step 1110 and described below.

As seen in FIG. 8, the range-rate parameter RTDop can mitigate the GDOP singularity presented by a positioning method using only the range and range difference parameters. However, in rare cases, the range-rate parameter alone is insufficient to resolve the GDOP singularity. In these cases, the GDOP singularity can be resolved by using all four parameters. Thus, in a third embodiment of the present invention, position determination is based on the range, range difference, range-rate, and range-rate difference parameters. As will be apparent to one skilled in the relevant art, further increases in accuracy can be obtained by using more than one of each parameter in any of the embodiments described above.

FIG. 12 is a flowchart depicting the operation of this third embodiment of the present invention. One or more range parameters are determined, as described above and shown in a step 1202. One or more range difference parameters are determined, as described above and shown in a step 1204. One or more range-rate parameters are determined, as described above and shown in a step 1206. One or more range-rate difference parameters are determined, as described above and shown in a step 1208. Then, the position of the user terminal on the Earth's surface is determined based on the known positions and velocities of the satellites and the range, range difference, range-rate, and range-rate difference parameters, as shown in a step 1210 and described below.

V. Positioning Execution

Before describing positioning execution in detail, it is useful to first describe an exemplary environment in which the positioning method of the present invention can operate. FIG. 13 is a block diagram illustrating such an example environment. The environment is a computer system 1300 that can form a part of control processor 220 and/or control processor 320. Computer system 1300 includes one or more processors, such as processor 1304. The, processor 1304 is connected to a communications bus 1306. Various embodiments are described in terms of this example computer system. After reading this description, it will be apparent to a person skilled in the relevant art how to implement the positioning method of the present invention using other computer systems, computer architectures, hardware state machines, look-up tables, and the like, and various combinations thereof.

Computer system 1300 also includes a main memory 1308, preferably random access memory (RAM), and can also include a secondary memory 1310. The secondary memory 1310 can include, for example, a hard disk drive 1312 and/or a removable storage drive 1314, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive 1314 reads from and/or writes to a removable storage unit 1318 in a well known manner. Removable storage unit 1318 represents a floppy disk, magnetic tape, optical disk, etc. As will be appreciated, the removable storage unit 1318 includes a computer usable storage medium having stored therein computer software and/or data.

In alternative embodiments, secondary memory 1310 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 1300. Such means can include, for example, a removable storage unit 1322 and an interface 1320. Examples can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 1322 and interfaces 1320 which allow software and data to be transferred from the removable storage unit 1322 to computer system 1300.

Computer system 1300 can also include a communications interface 1324. Communications interface 1324 allows software and data to be transferred between computer system 1300 and external devices through communications path 1326. Examples of communications interface 1324 can include a modem, a network interface (such as an Ethernet card), a communications port, etc. Software and data transferred through communications interface 1324 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface 1324 through communications path 1326.

The operation of the positioning method of the present invention is described in terms of this example environment. Description in these terms is provided for convenience only. It is not intended that the operation of the positioning method of the present invention be limited to application in this example environment. In fact, after reading the following description, it will become apparent to a person skilled in the relevant art how to implement the positioning method of the present invention in alternative environments.

In one embodiment of the present invention, the position of user terminal 106 is determined by executing the positioning method described below on computer system 1300. As would be apparent to one skilled in the relevant art, the positioning method can be executed by a hardware state machine, look-up tables, or the like without departing from the spirit and scope of the present invention.

An M×1 vector of parameters denoted z is constructed that consists of the M parameters to be used in position determination. Vector z can include one or more of each of the parameters described above. As is well-known in the art, the parameters are non-linear functions of the 2-dimensional user terminal position vector x,

x=[lat long]^(T)  (5)

where the “T” superscript indicates the transpose of a matrix or vector, according to:

z=h(x)+v  (6)

where the M×1 vector v represents the measurement errors, and h is the non-linear function which describes the relationship between the measured parameters and the position of user terminal 106. h is also a function of the positions and velocities of satellites 104A and 104B. In an alternate embodiment, the user terminal position vector x can be defined by three Cartesian coordinates, rather than by latitude and longitude, as shown in equation (7).

x=[x y z]^(T)  (7)

According to Gauss' method of linearization, a M×K partial derivative matrix H is constructed to solve for the position of user terminal 106, where K is the number of position unknowns, and whose (m,k) element is the partial derivative of the mth measurement with respect to the kth position parameter, determined at a given position x. For example, if the position vector describes latitude and longitude, as in equation (5), then K equals 2 and the elements in the k=1 column of the matrix H describe the partial derivatives with respect to the latitude of user terminal 106 and the elements in the k=2 column describe the partial derivatives with respect to the longitude of user terminal 106. If the position vector is in Cartesian coordinates (K=3), the k=(1,2,3) columns of H refer to (x,y,z) coordinates, respectively. When Cartesian coordinates are used, an additional equation is used to indicate that the sum of the squares of the coordinates is the square of the radius of the Earth. The relationship between x and H is given by: $\begin{matrix} {H = {{H(x)} = {\frac{\partial h}{\partial x}(x)}}} & (8) \end{matrix}$

An iterative weighted least-squares method is used to solve for the unknown position parameters. In a preferred embodiment of the present invention, the method employed is the weighted Gauss-Newton method disclosed by H. W. Sorenson in Parameter Estimation—Principles and Problems, New York, Marcel Dekker, 1980. The iterative equation is given by the relationship:

 {circumflex over (x)}_(i+1)={circumflex over (x)}_(i)+(Ĥ^(T) WĤ)⁻¹ Ĥ^(T) W(z−{circumflex over (z)})  (9)

where {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) are the current and next position estimates, respectively, and W is a M×M weight matrix. The subscript i represents the iteration number, with i=0 representing the first iteration. Matrices or vectors based on a position estimate are indicated by a “{circumflex over ( )}” superscript. A reference point, such as the last-known position of user terminal 106, is selected as an initial position estimate. If no last position is known, any position, such as the position of gateway 102, can be used.

Ĥ=H({circumflex over (x)}_(i))  (10)

is the partial derivative matrix determined at the current position estimate, and

{circumflex over (z)}=h({circumflex over (x)}_(i))  (11)

are the expected error-free parameters, determined using the current position estimate. The iterations terminate when the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a predetermined threshold. The threshold is determined by system designers and/or operators based on system accuracy, as would be apparent to one skilled in the relevant art. For example, the threshold can be based on the chip accuracy of the measurements and the chip rate.

The elements of the M×M weight matrix W provide means to emphasize the influence of specific parameters upon the estimated position {circumflex over (x)} when there are more parameters than unknowns. In a preferred embodiment, weight matrix W is a diagonal matrix whose elements reflect the relative accuracy with which each parameter can be determined. Thus, the values of the elements are set based on the known measurement accuracies of the system as would be apparent to those skilled in the relevant art. Therefore, a parameter based on a very accurate measurement is given more significance than a parameter which cannot be measured as accurately. The elements of the weight matrix are initialized to predetermined values, but can be adjusted dynamically. Optimal accuracy is obtained if the weight matrix is chosen as the inverse of the measurement error covariance matrix.

If the measurement errors are mutually independent with zero mean and variances:

 σ_(m) ², m=1, 2, . . . ,M  (12)

then W is a diagonal matrix with σ⁻² _(m) as its diagonal elements.

With this choice of W the variance of the kth element of the estimated position vector is given by:

σ_(k) ²=(H^(T) WH)⁻¹ _(k,k), k=1,2.  (13)

Finally, the combined theoretical horizontal position error, in units of distance, is given by:

σ_(pos)=R_(E){square root over (σ_(k=1) ²+L +σ_(k=2) ²+L cos²+L (lat))}  (14)

where R_(E) is the Earth radius.

Ordinarily, if the correct weight matrix according to the error variances is chosen, the iterations may converge to a local minimum corresponding to a mirror image of the true solution on the opposite side of the baseline, 612. One can find the neighborhood of the other solution using this first solution by reflecting it with respect to the baseline, 612. A new cycle of iterations is needed to find the exact second solution. Once the two possible solutions are obtained, it is still necessary to find which one is true. This is accomplished by comparing the calculated frequencies corresponding to each solution with the measured frequencies.

A better technique is described below which ensures more direct convergence of the iterations to the correct solution. This technique is referred to as “weight matrix adaptation.” As an example, when the frequency measurements have more error variance than time measurements, the frequency measurements are given less weight in the correctly formed weight matrix. However, as pointed out earlier, this may result in convergence to a mirror solution. Hence, an initial weight matrix (steering weight matrix) is deliberately chosen that gives more weight to frequency measurements (in the example above) than is “correct” based on error variances. This ensures that the iterations are steered towards the true solution rather than the mirror solution. After a fixed predetermined number of iterations (usually a small number) or after we are near convergence (which is detected by measuring the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1)) a switch is made to the “correct” (optimal) weight matrix W described above. This latter step ensures that the ultimate error in our solution is the minimum possible. The above technique can be generalized to changing the weight matrix more than once.

In a preferred embodiment, the positioning method employs a smooth ellipsoid model for the Earth's surface. In an alternate embodiment, the positioning method initially employs a smooth ellipsoid model for the Earth's surface such as the WGS-84 Earth model. When the values of x converge so that difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) is less than a predetermined threshold, a detailed digital terrain model is substituted for the smooth model, and the iterations continue until the values of x converge so that the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) is less than a second predetermined distance threshold. Thus, any errors introduced by the elevation of user terminal 106 are mitigated. In an alternative embodiment, the detailed digital terrain model is substituted after a predetermined number of iterations. The values of the distance thresholds and the number of iterations described above are determined according to various factors, as would be apparent to one skilled in the relevant art.

In an alternative embodiment, the height of a position above the Earth itself can be estimated. The additional fictitious measurement—the distance to the center of the Earth—referred to with regard to the use of Cartesian coordinates, does not have to be treated as a perfect measurement Associating with it an error σ_(h), and a corresponding weight 1/σ_(h′) ², will softly transition the two-dimensional positioning into three-dimensional positioning, in which the height above the smooth Earth model is also estimated. Adding the height unknown can be similarly implemented in polar coordinates (lat, long, h). In that case a fictitious measurement of height is added.

The error assigned to the fictitious measurement controls the freedom within which the estimated height is allowed to fluctuate around the assumed height. As the error increases, the weight assigned to that measurement decreases, and the positioning transitions more toward three-dimensional positioning. The drawback of adding a height unknown is that it causes higher sensitivity of the horizontal position unknowns to errors in the actual measurements. Therefore, it is advantageous to assign large error (small weight) to the fictitious height measurement only in areas where height changes rapidly as function of horizontal distance and a topographic map cannot be used effectively.

V. Conclusion

While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. 

What we claim as our invention is:
 1. A position determining system for a satellite communications system, comprising: a user terminal; at least two satellites with known positions and known velocities; a gateway for communicating with said user terminal through said satellites; range parameter determining means for determining a range parameter that represents a distance between one of said satellites and said user terminal; range difference parameter determining means for determining a range difference parameter that represents a difference between (1) the distance between one of said satellites and said user terminal and (2) the distance between another of said satellites and said user terminal; at least one of: range-rate parameter determining means for determining a range-rate parameter that represents a relative radial velocity between one of said satellites and said user terminal; and range-rate difference parameter determining means for determining a range-rate difference parameter that represents a difference between (1) a relative radial velocity between one of said satellites and said user terminal and (2) a relative radial velocity between another of said satellites and said user terminal; and position determining means in said gateway for determining a position of said user terminal on the Earth's surface based on said known positions and velocities of said satellites, said range parameter, said range difference parameter, and at least one of said range-rate parameter and said range-rate difference parameter.
 2. The position determining system of claim 1, wherein said range parameter represents a round-trip delay, further comprising: round-trip delay measuring means in said gateway for measuring a round-trip delay of a signal, said signal transmitted from said gateway to said user terminal through one of said satellites and retransmitted from said user terminal to said gateway through one of said satellites.
 3. The position determining system of claim 1, wherein said range difference parameter represents a delay difference, further comprising: delay difference measuring means in said user terminal for measuring a delay difference between a first signal received from said gateway through a first one of said satellites and a second signal received from said gateway through a second one of said satellites.
 4. The position determining system of claim 3, wherein at least one of said first and second signals is precorrected in time to compensate for delays associated with the difference between (a) the distance between said gateway and said first one of said satellites and (b) the distance between said gateway and said second one of said satellites.
 5. The position determining system of claim 3, wherein said gateway adjusts said delay difference to compensate for delays associated with the difference between (a) the distance between said gateway and said first one of said satellites and (b) the distance between said gateway and said second one of said satellites.
 6. The position determining system of claim 1, wherein said range-rate parameter represents frequency measurements of a first signal and a second signal, further comprising: first frequency measuring means in said user terminal for measuring a frequency of the first signal, the first signal received from said gateway through one of said satellites; sending means in said user terminal for sending said frequency measurement of the first signal to said gateway; and second frequency measuring means in said gateway for measuring a frequency of the second signal, the second signal received from said user terminal through one of said satellites.
 7. The position determining system of claim 1, wherein said range-rate difference parameter represents a frequency difference, further comprising: frequency difference measuring means in said user terminal for measuring a frequency difference between a frequency of a first signal received from said gateway through a first one of said satellites and a frequency of a second signal received from said gateway through a second one of said satellites.
 8. The position determining system of claim 7, wherein at least one of said first and second signals is precorrected in frequency to compensate for Doppler shift caused by the difference between (a) a relative radial velocity between said gateway and said first one of said satellites and (b) a relative radial velocity between said gateway and said second one of said satellites.
 9. The position determining system of claim 7, wherein said gateway adjusts said frequency difference to compensate for Doppler shifts caused by (a) a relative radial velocity between said gateway and said first one of said satellites and (b) a relative radial velocity between said gateway and said second one of said satellites.
 10. For use in a position determining system including a user terminal, at least two satellites with known positions and known velocities, a gateway for communicating with the user terminal through the satellites, and means for determining parameters describing the position of the user terminal relative to the satellites, a computer program product comprising: a computer usable medium having computer readable program code means embodied in said medium for causing an application program to execute on the computer system, said computer readable program code means comprising: a computer readable first program code means for causing the computer system to generate a M×1 parameter vector z comprising said parameters, wherein M is the number of parameters determined; a computer readable second program code means for causing the computer system to generate a position vector x representing an initial reference point; a computer readable third program code means for causing the computer system to generate a partial derivative matrix H containing information regarding the position of the satellites and an Earth model describing the shape of the Earth wherein the relationship between x and H is given by: $H = {{H(x)} = {\frac{\partial h}{\partial x}(x)}}$

a computer readable fourth program code means for causing the computer system to generate a M×M weight matrix W to emphasize the influence of specific parameters; and a computer readable fifth program code means for causing the computer system to execute the iterative equation: {circumflex over (x)}_(i+1)={circumflex over (x)}_(i)+(Ĥ^(T) WĤ)⁻¹ Ĥ^(T) W(z−{circumflex over (z)})  wherein {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) are the current and next position estimates, respectively, and i represents the iteration number, until the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a first predetermined threshold.
 11. The computer program product of claim 10, wherein said computer readable program code means further comprises: a computer readable sixth program code means for causing the computer system to use a smooth model of the Earth until the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a second predetermined threshold, and a detailed digital terrain model of the Earth thereafter.
 12. The computer program product of claim 10, wherein said weight matrix W is the inverse of the measurement error covariance matrix.
 13. The computer program product of claim 10, wherein said computer readable program code means further comprises: a further computer readable program code means for causing the computer system to use a first weight matrix W₁ for the first n iterations, and a second weight matrix W₂ thereafter, wherein n is a predetermined number, said second weight matrix W₂ is the inverse of the measurement error covariance matrix, and said first weight matrix W₁ gives greater weight to said range-rate parameters and said range-rate difference parameters than to said range parameters and said range difference parameters, beyond the differences in weights in said second weight matrix W₂.
 14. The computer program product of claim 10, wherein said computer readable program code means further comprises: a further computer readable program code means for causing the computer system to use a smooth model of the Earth for the first n iterations, and a detailed digital terrain model of the Earth thereafter, wherein n is a predetermined number.
 15. The computer program product of claim 10, wherein said computer readable program code means further comprises: a further computer readable program code means for causing the computer system to use a first weight matrix W₁ until the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a third predetermined threshold, and a second weight matrix W₂ after the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below said third predetermined threshold distance, wherein said second weight matrix W₂ is the inverse of the measurement error covariance matrix, and said first weight matrix W ₁ gives greater weight to said range-rate parameters and said range-rate difference parameters than to said range parameters and said range difference parameters, beyond the differences in weights in said second weight matrix W₂.
 16. In a communications system comprising a user terminal, at least two satellites with known positions and known velocities, and a gateway for communicating with the user terminal through the satellites, a method for determining the position of the user terminal, comprising the steps of: (a) determining a range parameter that represents a distance between one of the satellites and the user terminal; (b) determining a range difference parameter that represents a difference between (1) the distance between one of the satellites and the user terminal and (2) the distance between another of the satellites and the user terminal; (c) determining at least one of a range-rate parameter that represents a relative radial velocity between one of the satellites and the user terminal and a range-rate difference parameter that represents a difference between (1) a relative radial velocity between one of the satellites and the user terminal and (2) a relative radial velocity between another of the satellites and the user terminal; and (d) determining the position of the user terminal on the Earth's surface based on the known positions and known velocities of the satellites, said range parameter, said range-rate parameter, and at least one of said range difference parameter and said range-rate difference parameter.
 17. The method of claim 16, wherein said range parameter represents a round-trip delay, wherein step (a) further comprises the step of: (i) measuring, at the gateway, a round-trip delay of a signal, said signal transmitted from the gateway to the user terminal through one of the satellites and retransmitted from the user terminal to the gateway through one of the satellites.
 18. The method of claim 16, wherein said range difference parameter represents a delay difference, wherein step (b) further comprises the step of: (i) measuring, at the user terminal, a delay difference between a first signal received from the gateway through a first one of the satellites and a second signal received from the gateway through a second one of the satellites.
 19. The method of claim 18, wherein at least one of said first and second signals is precorrected in time to compensate for delays associated with the difference between (a) the distance between the gateway and said first one of the satellites and (b) the distance between the gateway and said second one of the satellites.
 20. The method of claim 18, wherein the gateway adjusts said delay difference to compensate for delays associated with the difference between (a) the distance between the gateway and said first one of the satellites and (b) the distance between the gateway and said second one of the satellites.
 21. The method of claim 16, wherein, when said range-rate parameter is to be determined, then step (c) further comprises the steps of: (i) measuring, at the user terminal, a frequency of a first signal received from the gateway through one of the satellites; (ii) sending said frequency measurement of said first signal to the gateway; (iii) transmitting a second signal from the user terminal to the gateway through one of the satellites; and (iv) measuring, at the gateway, a frequency of a frequency of a second signal received from the user terminal through one of the satellites, wherein said range-rate parameter represents said frequency measurements of said first and second signals.
 22. The method of claim 16, wherein, when said: range-rate difference parameter is to be determined, then step (c) further comprises the steps of: (i) transmitting a first signal from the gateway to the user terminal through a first one of the satellites and transmitting a second signal from the gateway to the user terminal through a second one of the satellites; and (ii) measuring, at the user terminal, a frequency difference between a frequency of said first signal and a frequency of said second signal, wherein said range-rate difference parameter represents said frequency difference.
 23. The method of claim 22, wherein at least one of said first and second signals is precorrected in frequency to compensate for Doppler shift caused by the difference between (a) a relative radial velocity between the gateway and said first one of the satellites and (b) a relative radial velocity between the gateway and said second one of the satellites.
 24. The method of claim 22, wherein the gateway adjusts said frequency difference to compensate for Doppler shift caused by the difference between (a) a relative radial velocity between the gateway and said first one of the satellites and (b) a relative radial velocity between the gateway and said second one of the satellites.
 25. In a communications system comprising at least two satellites with known positions and known velocities and a gateway for communicating with a user terminal through the satellites, a user terminal comprising: means for retransmitting a first signal received from the gateway through one of the satellites; range difference parameter determining means for determining a range difference parameter that represents a difference between (1) the distance between one of the satellites and the user terminal and (2) the distance between another of the satellites and the user terminal; and at least one of: range-rate difference parameter determining means for determining a range-rate difference parameter that represents a difference between (1) a relative radial velocity between one of the satellites and the user terminal and (2) a relative radial velocity between another of the satellites and the user terminal; and means for measuring a frequency of a second signal transmitted by the gateway through a further one of the satellites, sending said frequency measurement to the gateway, and transmitting a third signal to said gateway through said further one of the satellites; wherein the position of the user terminal on the Earth's surface can be determined based on said retransmitted first signal, said range difference parameter, the known positions and known velocities of the satellites, and at least one of said range-rate difference parameter, said frequency measurement and said third signal.
 26. A position determining system for a satellite communications system, comprising: a user terminal; at least two satellites with known positions and known velocities; a gateway for communicating with said user terminal through said satellites; range parameter determining means for determining a range parameter that represents a distance between one of said satellites and said user terminal; range difference parameter determining means for determining a range difference parameter that represents a difference between (1) the distance between one of said satellites and said user terminal and (2) the distance between another of said satellites and said user terminal; range-rate parameter determining means for determining a range-rate parameter that represents a relative radial velocity between one of said satellites and said user terminal; range-rate difference parameter determining means for determining a range-rate difference parameter that represents a difference between (1) a relative radial velocity between one of said satellites and said user terminal and (2) a relative radial velocity between another of said satellites and said user terminal; and position determining means in said gateway for determining the position of said user terminal on the Earth's surface based on said range parameter, said range-rate parameter, said range difference parameter, said range-rate difference parameter, and said known positions and known velocities of said satellites.
 27. A position determining system for a satellite communications system, comprising: a user terminal; at least two satellites with known positions and known velocities; a gateway for communicating with said user terminal through said satellites; range parameter determining means for determining a range parameter that represents a distance between one of said satellites and said user terminal; range difference parameter determining means for determining a range difference parameter that represents a difference between (1) the distance between one of said satellites and said user terminal and (2) the distance between another of said satellites and said user terminal; range-rate difference parameter determining means for determining a range-rate difference parameter that represents a difference between (1) a relative radial velocity between one of said satellites and said user terminal and (2) a relative radial velocity between another of said satellites and said user terminal; and position determining means in said gateway for determining the position of said user terminal on the Earth's surface based on said range parameter, said range difference parameter, said range-rate difference parameter, and said known positions and known velocities of said satellites.
 28. A position determining system for a satellite communications system, comprising: a user terminal; at least two satellites with known positions and known velocities; a gateway for communicating with said user terminal through said satellites; range parameter determining means for determining a range parameter that represents a distance between one of said satellites and said user terminal; range difference parameter determining means for determining a range difference parameter that represents a difference between (1) the distance between one of said satellites and said user terminal and (2) the distance between another of said satellites and said user terminal; range-rate parameter determining means for determining a range-rate parameter that represents a relative radial velocity between one of said satellites and said user terminal; and position determining means in said gateway for determining the position of said user terminal on the Earth's surface based on said range parameter, said range-rate parameter, said range difference parameter, and said known positions and known velocities of said satellites.
 29. A position determining system for a satellite communications system, comprising: a user terminal; at least two satellites with known positions and known velocities; a gateway for communicating with said user terminal through said satellites; range parameter determining means for determining a range parameter; range difference parameter determining means for determining a range difference parameter; at least one of: range-rate parameter determining means for determining a range-rate parameter; and range-rate difference parameter determining means for determining a range-rate difference parameter; and position determining means in said gateway for determining a position of said user terminal on the Earth's surface based on said known positions and velocities of said satellites, said range parameter, said range difference parameter, and at least one of said range-rate parameter and said range-rate difference parameter, said position determining means comprising means for generating a M×1 parameter vector z comprising said parameters, wherein M is the number of parameters determined; means for generating a position vector x representing an initial reference point; means for generating a partial derivative matrix H containing information regarding said known positions and velocities of said satellites and an Earth model describing the shape of the Earth wherein the relationship between x and H is given by $H = {{H(x)} = {\frac{\partial h}{\partial x}(x)}}$

means for generating a M×M weight matrix W to emphasize the influence of specific parameters; and means for executing the iterative equation {circumflex over (x)}_(i+1)={circumflex over (x)}_(i)+(Ĥ^(T) WĤ)⁻¹ Ĥ^(T) W(z−{circumflex over (z)})  wherein {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) are the current and next position estimates, respectively, and i represents the iteration number, until the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a first predetermined threshold.
 30. The position determining system of claim 29, wherein said position determining means further comprises: means for using a smooth model of the Earth until the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a second predetermined threshold, and a detailed digital terrain model of the Earth thereafter.
 31. The position determining system of claim 29, wherein said weight matrix W is the inverse of the measurement error covariance matrix.
 32. The position determining system of claim 29, wherein said position determining means further comprises: means for using a first weight matrix W₁ for the first n iterations, and a second weight matrix W₂ thereafter, wherein n is a predetermined number, said second weight matrix W₂ is the inverse of the measurement error covariance matrix, and said first weight matrix W₁ gives greater weight to said range-rate parameters and said range-rate difference parameters than to said range parameters and said range difference parameters, beyond the differences in weights in said second weight matrix W₂.
 33. The position determining system of claim 29, wherein said position determining means further comprises: means for using a smooth model of the Earth for the first n iterations, and a detailed digital terrain model of the Earth thereafter, wherein n is a predetermined number.
 34. The position determining system of claim 29, wherein said position determining means further comprises: means for using a first weight matrix W₁ until the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below a third predetermined threshold distance, and a second weight matrix W₂ after the difference between {circumflex over (x)}_(i) and {circumflex over (x)}_(i+1) falls below said third predetermined threshold, wherein said second weight matrix W₂ is the inverse of the measurement error covariance matrix, and said first weight matrix W₁ gives greater weight to said range-rate parameters and said range-rate difference parameters than to said range parameters and said range difference parameters, beyond the differences in weights in said second weight matrix W₂. 